package org.deltaset.meta;

/**
 *
 * @author dmakariev
 */
public interface MetaActionHandler {

    ExecutorResult executeAction(final MetaActionExecutor executor, final Object model);

    Object executeAction(final MetaAction metaAction, final Object model, final Object[] parameterValues);

    Finder newPageHelper(final MetaActionExecutor finderExecutor, final MetaAction defaultFinder);

    boolean isDisabled(final MetaAction metaAction, final Object model);

    boolean isHidden(final MetaAction metaAction, final Object model);

    Object loadModel(final Class entityClass,final MetaAction findByIdAction, final String id);

    /////
    String getModelId(final Object model);

    boolean isNew(Object model);

    String modelTitle(Object model);
}
